package internal

import (
	"fmt"
	"ginx/hack/dbtool/mystruct"

	"gorm.io/gen"
)

func Gormgen() {
	g := gen.NewGenerator(gen.Config{
		OutPath:      "./internal/dao",
		ModelPkgPath: "./internal/model",
		Mode:         gen.WithoutContext | gen.WithDefaultQuery | gen.WithQueryInterface, // generate mode
	})

	g.UseDB(DB) // reuse your gorm db

	g.ApplyBasic(
		g.GenerateAllTable()...,
	)

	// Generate the code
	g.Execute()
}

// 根据结构体中自动生成表
func Migrate() {
	// 自动迁移模式：按照User结构体字段自动创建表

	// 这里需要根据自自己构建的结构体进行修改
	err := DB.AutoMigrate(&mystruct.User{})
	if err != nil {
		fmt.Println("数据库迁移失败")
	} else {
		fmt.Println("数据库迁移成功")
	}

}
